<script setup>
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
import { getRecommendAPI } from '@/api/home'

const apiList = [
    '/hot/new',
    '/hot/oneStop',
    '/hot/inVogue',
    '/hot/preference'
]

const type = ref(0)
const apiUrl = ref('')

// 存放图片
const bannerPicture = ref('')
// 存放子分类
const subTypes = ref([])
// 记录当前要显示的那个id
const activeId = ref(0)

onLoad(async (options) => {
    // 之前的页面跳进来的时候发了一个当前特惠类型 type
    type.value = options.type
    // 根据这个 type 获取到当前这个特惠数据需要的 api 地址
    apiUrl.value = apiList[type.value - 1]
    // 获取当前页面的数据
    const { result } = await getRecommendAPI(apiUrl.value)
    // 当前页面需要的数据
    console.log('当前页面需要的数据', result);

    // 将要用的数据存起来
    bannerPicture.value = result.bannerPicture
    subTypes.value = result.subTypes

    // 将子分类的第一个的id作为标记记录下来
    activeId.value = subTypes.value[0].id

})


</script>

<template>
    <view class="viewport">
        <!-- 推荐封面 -->
        <view class="cover">
            <image :src="bannerPicture" />
        </view>
        <!-- tab栏 -->
        <view class="tabs">
            <text @click="activeId = item.id" class="text" :class="{active: item.id === activeId}" v-for="item in subTypes"> {{ item.title }} </text>
        </view>

     
           <!-- 列表内容 -->
           <scroll-view v-show="item.id === activeId" scroll-y class="scroll-view" v-for="item in subTypes">
            <view class="goods">
                <navigator hover-class="none" class="navigator" v-for="goods in item.goodsItems.items" :key="goods.id"
                    :url="`/pages/goods/index?id=${goods.id}`">
                    <image class="thumb" :src="goods.picture"></image>
                    <view class="name ellipsis">{{ goods.name }}</view>
                    <view class="price">
                        <text class="symbol">¥111 {{ item.title }}</text>
                        <text class="number">{{ goods.price }}</text>
                    </view>
                </navigator>
            </view>
        </scroll-view>

    </view>
</template>
  
<style lang="scss">
page {
    height: 100%;
    background-color: #f4f4f4;
}

.viewport {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 180rpx 0 0;
    position: relative;
}

.cover {
    width: 750rpx;
    height: 225rpx;
    border-radius: 0 0 40rpx 40rpx;
    overflow: hidden;
    position: absolute;
    left: 0;
    top: 0;
}

.tabs {
    display: flex;
    justify-content: space-evenly;
    height: 100rpx;
    line-height: 90rpx;
    margin: 0 20rpx;
    font-size: 28rpx;
    border-radius: 10rpx;
    box-shadow: 0 4rpx 5rpx rgba(200, 200, 200, 0.3);
    color: #333;
    background-color: #fff;
    position: relative;
    z-index: 9;

    .text {
        margin: 0 20rpx;
        position: relative;
    }

    .active {
        &::after {
            content: "";
            width: 40rpx;
            height: 4rpx;
            transform: translate(-50%);
            background-color: #27ba9b;
            position: absolute;
            left: 50%;
            bottom: 24rpx;
        }
    }
}

.scroll-view {
    flex: 1;
    overflow: hidden;
}

.goods {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 20rpx 20rpx;

    .navigator {
        width: 345rpx;
        padding: 20rpx;
        margin-top: 20rpx;
        border-radius: 10rpx;
        background-color: #fff;
    }

    .thumb {
        width: 305rpx;
        height: 305rpx;
    }

    .name {
        height: 88rpx;
        font-size: 26rpx;
    }

    .price {
        line-height: 1;
        color: #cf4444;
        font-size: 30rpx;
    }
}

.goods .symbol,
.goods .decimal {
    font-size: 70%;
}
</style>